package br.ufrn.engcomp.cadastro.web;

import java.io.Serializable;
import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.ufrn.engcomp.arq.web.AbstractController;
import br.ufrn.engcomp.cadastro.dominio.Despesa;
import br.ufrn.engcomp.comum.web.TipoDespesaMBean;

/**
 * @author Buriti
 *
 */
@ManagedBean
@SessionScoped
public class DespesaMBean extends AbstractController<Despesa> implements Serializable {

	private static final long serialVersionUID = 1L;
	
	private TipoDespesaMBean tipoDespesa;

	@Override 
	protected void initializeEntity() { 
		setEntidade(new Despesa());
		
		tipoDespesa = new TipoDespesaMBean();
		
		tipoDespesa.list();
	} 


	
	public TipoDespesaMBean getTipoDespesa() {
		return tipoDespesa;
	}



	public void setTipoDespesa(TipoDespesaMBean tipoDespesa) {
		this.tipoDespesa = tipoDespesa;
	}



	@Override
	public void saveOrUpdate() {
		getEntidade().setDataCadastro(new Date ());
		getEntidade().setAtivo(true);
		super.saveOrUpdate();
		forward("/sucesso.xhtml");
	}
	
	public void forwardCadastro() {
		forward("/despesa/formDespesa.xhtml");
	}
	
	public void forwardLista() {
		list();
		forward("/despesa/listaDespesa.xhtml");
	}
	
	public void actionVoltar() {
		forward("/menuPrincipal.xhtml");
	}
	
	public void actionCancelar() {
		initializeEntity();
		forward("/menuPrincipal.xhtml");
	}
	
	public void actionAlterar() {
		forward("/despesa/alterarDespesa.xhtml");
	}
	
	public void actionDeletar() {
		delete();
	}

	
	
}
